package com.yuetong.business.service.impl;

import java.util.List;
import java.util.Map;

import com.yuetong.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.yuetong.business.mapper.YtContractInfoMapper;
import com.yuetong.business.domain.YtContractInfo;
import com.yuetong.business.service.IYtContractInfoService;

/**
 * 合同信息，用于存储与场所相关的合同信息Service业务层处理
 * 
 * @author  卓晓君
 * @date 2025-03-07
 */
@Service
public class YtContractInfoServiceImpl implements IYtContractInfoService 
{
    @Autowired
    private YtContractInfoMapper ytContractInfoMapper;

    /**
     * 查询合同信息，用于存储与场所相关的合同信息
     * 
     * @param contractId 合同信息，用于存储与场所相关的合同信息主键
     * @return 合同信息，用于存储与场所相关的合同信息
     */
    @Override
    public YtContractInfo selectYtContractInfoByContractId(Long contractId)
    {
        return ytContractInfoMapper.selectYtContractInfoByContractId(contractId);
    }

    /**
     * 查询合同信息，用于存储与场所相关的合同信息列表
     * 
     * @param ytContractInfo 合同信息，用于存储与场所相关的合同信息
     * @return 合同信息，用于存储与场所相关的合同信息
     */
    @Override
    public List<YtContractInfo> selectYtContractInfoList(YtContractInfo ytContractInfo)
    {
        return ytContractInfoMapper.selectYtContractInfoList(ytContractInfo);
    }

    /**
     * 新增合同信息，用于存储与场所相关的合同信息
     * 
     * @param ytContractInfo 合同信息，用于存储与场所相关的合同信息
     * @return 结果
     */
    @Override
    public int insertYtContractInfo(YtContractInfo ytContractInfo)
    {
        ytContractInfo.setCreateTime(DateUtils.getNowDate());
        return ytContractInfoMapper.insertYtContractInfo(ytContractInfo);
    }

    /**
     * 修改合同信息，用于存储与场所相关的合同信息
     * 
     * @param ytContractInfo 合同信息，用于存储与场所相关的合同信息
     * @return 结果
     */
    @Override
    public int updateYtContractInfo(YtContractInfo ytContractInfo)
    {
        ytContractInfo.setUpdateTime(DateUtils.getNowDate());
        return ytContractInfoMapper.updateYtContractInfo(ytContractInfo);
    }

    /**
     * 批量删除合同信息，用于存储与场所相关的合同信息
     * 
     * @param contractIds 需要删除的合同信息，用于存储与场所相关的合同信息主键
     * @return 结果
     */
    @Override
    public int deleteYtContractInfoByContractIds(Long[] contractIds)
    {
        return ytContractInfoMapper.deleteYtContractInfoByContractIds(contractIds);
    }

    /**
     * 删除合同信息，用于存储与场所相关的合同信息信息
     * 
     * @param contractId 合同信息，用于存储与场所相关的合同信息主键
     * @return 结果
     */
    @Override
    public int deleteYtContractInfoByContractId(Long contractId)
    {
        return ytContractInfoMapper.deleteYtContractInfoByContractId(contractId);
    }

    @Override
    public int getContractStatusCount(String contractStatus) {
        return  ytContractInfoMapper.selectContractStatusCount(contractStatus);
    }

    @Override
    public List<Map> getHeTongCount() {
        return ytContractInfoMapper.getHeTongCount();
    }
}
